﻿#define _CRT_SECURE_NO_WARNINGS
//悬空else：如果有多个 if 和 else ，可以记住这样⼀条规则， else 总是跟最接近的 if 匹配。
//我们⾸先从下⾯代码开始：
#include <stdio.h>
int main()
{
	 int a = 0;
	 int b = 2;
	 if (a == 1)
		 if (b == 2)
		 printf("hehe\n");
	 else
		 printf("haha\n");
	 return 0;
}//这条代码的结果是什么都没有
//else的匹配逻辑：else 总是跟最接近的 if 匹配。
//所以这条代码首先判断第一个else，然后才进入第二个if-else语句进行处理。
//但是第一个if的判断结果是不成立，所以就不会进入下面的if-else语句进行判读，因此这条代码的结果就是什么都没有。

//所以这条代码的完全,清晰写法应该是：
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("hehe\n");
		else
			printf("haha\n");
	}
	return 0;
}